home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / IDLIncludes / TSMObject.idl < prev    next >
Text File  |  1996-05-01  |  6KB  |  166 lines

  1. /*
  2.      File:        TSMObject.idl
  3.  
  4.      Contains:    Declarations for the SOM based Text Services Manager service Objects.
  5.  
  6.      Version:    Technology:    3/11/96    1/26/96    12/14/95    12/14/95    6/20/95    6/20/95    4/20/95    2/21/95
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1995-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16. */
  17.  
  18.  
  19. #include <somobj.idl>
  20. #include <somcls.idl>
  21. #include <Types.idl>
  22. #include <HIWindows.idl>
  23. #include <Keyboard.idl>
  24. #include <AEDataModel.idl>
  25. #include <TextObjects.idl>
  26. #include <TextServices.idl>
  27.  
  28. interface TSMObject : SOMObject
  29. {
  30.     /*
  31.         The TSMContext that is the owner of the Object
  32.      */
  33.     attribute    TSMContext         fTSMContext;
  34.     /*
  35.         The Status of the last operation on this object
  36.      */
  37.     attribute    OSStatus        fStatus;
  38.     /*
  39.         The text service context that has been attached to this object
  40.      */
  41.     attribute    TSMServiceContextRef     fServiceContext;
  42.     /*
  43.         Initialize the service. Should be overriden by the actual TextService
  44.         so it may perform an initialization of its private data structures, and 
  45.         attach its ServiceContext to the object.
  46.      */
  47.     OSStatus    InitializeService();
  48.     /*
  49.         Terminate the service. Should be overriden by the Text Service to perform
  50.         any cleanup prior to the object being destroyed.
  51.      */
  52.     OSStatus    TerminateService();
  53.     /*
  54.         Text Service changed. This call is generated when the working state of the 
  55.         text service is being changed. Such changes may include Language, or 
  56.         Locale Manager specification. The service should check the 
  57.         Service Specification, and modify its state to reflect the requested change.
  58.      */
  59.     OSStatus    ServiceChanged();
  60.     /*
  61.         EditInlineHole. Tells the TextService to re-edit a portion of text that was 
  62.         previously an in-line hole. This is primarily used for UNDO perposes,
  63.         but may be used for mulit-option area's controlled by the textservice
  64.      */
  65.     OSStatus    EditInlineHole(in AppleEvent *theEvent);
  66.     /*
  67.         FeatureChanged. One of the TSM Feature set has changed, this could be registered
  68.         handlers, FloatingWindow usages or any of the other features.
  69.         If the service is keeping track of features, is should query the current
  70.         state of the features that interest it.
  71.      */
  72.      OSStatus    FeatureChanged (in UInt32 theType);
  73.  
  74.     /*
  75.         Text Service Activate. Called when the Input Method is being activated, the 
  76.         input method should respond by showing its user interface elements, and 
  77.         preparing itself in an active state.
  78.      */
  79.     OSStatus    ActivateService();
  80.     /*
  81.         Text Service Deactivate. The input method is being deactivated. It should hide 
  82.         its user interface, fix any text input, and set itself in a deactivated 
  83.         state. An input method should release any unecessary resources when it is 
  84.         deactivated, but should maintain any state information.
  85.      */
  86.     OSStatus    DeactivateService();
  87.     /*
  88.         Service Event. The input method has the opertunity to act on the current key
  89.         event. If it handles the current event, and does not want the application
  90.         to recieve the event, it should return "true". It should not modify the 
  91.         content of the event structure, as there may be other text services who will
  92.         be looking at the event.
  93.      */
  94.     OSStatus    ServiceMouseEvent(in Point *mousePos, in KeyboardModifiers Modifiers, in UInt32 when, in UInt32 theEventType, in AppleEvent *event);
  95.     /*
  96.         Service Mouse Event. The input method has the opertunity to act on the current Mouse
  97.         event. If it handles the current event, and does not want the application
  98.         to recieve the event, it should return "true". It should not modify the 
  99.         content of the event structure, as there may be other text services who will
  100.         be looking at the event.
  101.      */
  102.     OSStatus    ServiceKeyEvent(in KeyboardModifiers Modifiers, in VirtualKeyCode theKeyCode, in VirtualKeyCode theCharCode, in AppleEvent *event);
  103.     /*
  104.         Service Window Event. The input method has the opertunity to act on the current Window
  105.         event. If it handles the current event, and does not want the application
  106.         to recieve the event, it should return "true". It should not modify the 
  107.         content of the event structure, as there may be other text services who will
  108.         be looking at the event.
  109.      */
  110.     OSStatus    ServiceWindowEvent(in HIWindow theWindow, in UInt32 theEventType, in AppleEvent *event);
  111.     /*
  112.          Hide Service Widnows. The input method should hide its service windows. This 
  113.         will normally be followed by a Deactivate method call.
  114.      */
  115.     OSStatus    HideServiceWindows();
  116.     /*
  117.         Set Cursor. If the input method wants cursor control, it should process this 
  118.         method, and set the  cursor. If it does set the cursor, it should return 
  119.         "true" otherwise it should return "false".
  120.      */
  121.     OSStatus    DoSetCursor (in Point *mousePos, in RegionClass rgnClass, in ByteOffset offset, in boolean isLeftHand, in AppleEvent *theEvent);
  122.     /*
  123.      * Release inline holes
  124.      */
  125.     OSStatus    ReleaseInlineHoles ();    
  126.     /*
  127.      * Terminate current input
  128.      */
  129.     OSStatus    TerminateInput ();
  130.     
  131.     
  132. #ifdef __SOMIDL__
  133.     implementation
  134.     {
  135.         passthru C_h_before = "#include <TextServices.h>";
  136.         releaseorder:     _get_fTSMContext, 
  137.                         _set_fTSMContext, 
  138.                         _get_fStatus, 
  139.                         _set_fStatus, 
  140.                         _get_fServiceContext, 
  141.                         _set_fServiceContext,
  142.                         InitializeService, 
  143.                         TerminateService, 
  144.                         ServiceChanged,
  145.                         EditInlineHole,
  146.                         FeatureChanged,
  147.                         ActivateService, 
  148.                         DeactivateService,
  149.                         ServiceKeyEvent, 
  150.                         ServiceMouseEvent, 
  151.                         ServiceWindowEvent,
  152.                         ReleaseInlineHoles, 
  153.                         HideServiceWindows, 
  154.                         DoSetCursor,
  155.                         TerminateInput;
  156.         somInit: override;
  157.         majorversion = 1;
  158.         minorversion = 1;
  159.         
  160.     };
  161. #endif
  162.  
  163. };
  164.  
  165.  
  166.